Skip to content

feat: 预设分组批量选择及面板保持打开交互优化#6

Merged
funnycups merged 5 commits intofunnycups:releasefrom
1432647:release
Apr 29, 2026
Merged

feat: 预设分组批量选择及面板保持打开交互优化#6
funnycups merged 5 commits intofunnycups:releasefrom
1432647:release

Conversation

@1432647
Copy link
Copy Markdown
Contributor

@1432647 1432647 commented Apr 29, 2026

改动概要

本次 PR 优化了预设分组功能的交互体验,主要包含以下两点:

1. 批量选择模式

  • 点击某个预设的分组按钮唤出分组面板后,可以继续点击其他预设的分组按钮,将它们加入当前批量选择。
  • 在 Select2 预设下拉面板中向下滚动寻找其他预设时,分组面板不会消失,支持连续操作。
  • 被选中的预设分组按钮会高亮显示,提供清晰的视觉反馈。

2. 移入分组后仅关闭分组面板

  • 点击"移入分组"或"新建分组"后,仅关闭分组面板,不会将整个 Select2 预设下拉面板关闭。
  • 下拉列表会在原地刷新内容,并尽量保留当前滚动位置和搜索词,减少重复操作。

改动文件

  • public/scripts/select2-actionable-single.js

    • 新增辅助函数:getOpenPresetContextMenu、getPresetContextSelection、syncPresetContextSelectionState。
    • 修改 showPresetContextMenu:实现批量选择状态管理,支持多选/取消选择。
    • 修改 dismissContextMenu:清理批量选择高亮状态。
    • 修改 refreshOpenDropdown:改为无关闭刷新,保留滚动与折叠状态。
    • 调整面板关闭逻辑:点击分组面板外部时仅关闭分组面板,保留主下拉面板。
  • public/css/select2-overrides.css

    • 为 .luker-action-select2-option__group--selected 添加高亮样式,与 hover/focus-visible 状态保持一致。

测试建议

  1. 打开预设下拉面板,点击任意预设的分组按钮唤出分组面板。
  2. 继续点击其他预设的分组按钮,确认它们被加入批量选择且按钮高亮。
  3. 在下拉面板中滚动,确认分组面板不会消失。
  4. 选择"移入分组"或"新建分组",确认仅分组面板关闭,预设下拉面板保持打开且内容已刷新。

@funnycups funnycups merged commit bfc12e3 into funnycups:release Apr 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants